<?php

class Check{
	
	public $message;
	private $nip;
	private $format;
	private $sum;
	
	function CheckNipFormat($nip){	///////////////////		Sprawdza czy format NIP wpisany w formularzu jest prawidlowy
		
		$nip = trim($nip);		//////////  Usuwa białe znaki
		
		if(preg_match('/^((([1-9]{1})([0-9]{1})([1-9]{1}))-([0-9]{3})-([0-9]{2})-([0-9]{2}))|((([1-9]{1})([0-9]{1})([1-9]{1}))-([0-9]{2})-([0-9]{2})-([0-9]{3}))$/',$nip)){		//////   Format z myslnikami
			
			$nip_parts = explode("-",$nip);		/////// Rozbija string (NIP) na tablicę
			$nip_parts = implode("",$nip_parts);/////// Łączy elementy tablicy bez znaków "-"
			
			return $this->CheckNipSumControl($nip_parts);
			
		}
		elseif(preg_match('/^(([1-9]{1})([0-9]{1})([1-9]{1})([0-9]{7}))$/',$nip)){	////////////	Format z samymi cyframi	
			return $this->CheckNipSumControl($nip);
		}
		else{
			$this->message = "<p class='error'>Niepoprawny format NIP</p>";
			return $this->message;
		}
	}
	
	function CheckNipSumControl($format){			/////////////// Sprawdza sume kontrolna
		
			
		$weights = array(6,5,7,2,3,4,5,6,7);
		$sum = 0;
		
		for($i=0;$i<9;$i++){
			$multiply = $format[$i] * $weights[$i];
			$sum += $multiply;
		}
		
		$mod = $sum % 11;
		
		if($mod == $format[9]){
			$this->message = "<p class='ok'>NIP jest prawidłowy";		/////// NIP prawidłowy
		}
		else{
			$this->message = "<p class='error'>NIP jest zły</p>";		/////// NIP nieprawidłowy
		}
		
		return $this->message;
	}
	
}

?>